import type { ProColumnType } from '@ant-design/pro-components';

/** 处理表格列表数据，返回表格数据对应的columns信息
 * @returns
 */
export const dealApiSelectDetail = (data: any): ProColumnType<any>[] => {
  if (!data) return [];
  let tableColumn: ProColumnType<any>[] = []; // 表格的列信息
  // 处理数据（给数据赋title、valueType）
  const length = Object.keys(data).length;
  Object.entries(data).forEach(([key, keyValue], index) => {
    let commonColumn: any = { title: key, dataIndex: key, valueType: 'text', value: keyValue };
    commonColumn.columnOrder = index + 1; // 表格列排列顺序
    commonColumn.order = length - index + 1; // 表格筛选表单顺序
    if (typeof keyValue === 'string') {
      commonColumn.valueType = 'text';
    }
    if (typeof keyValue === 'number') {
      commonColumn.valueType = 'digit';
    }
    tableColumn.push(commonColumn);
  });
  return tableColumn;
};

/** 处理表格列表数据，返回表格数据对应的columns信息
 * @returns
 */
export const dealApiSelectList = (dataList: any[]): ProColumnType<any>[] => {
  // 获取响应数据的第一条
  const dataFirst = dataList.length > 0 ? dataList[0] : undefined;
  if (!dataFirst) return [];
  return dealApiSelectDetail(dataFirst);
};
